package cn.dglydrpy.study.basemodule.mapper;

/**
 * 数据库访问接口  自定义的通用Mapper,实现对BaseMapper做通用扩展
 */

import cn.dglydrpy.study.basemodule.entity.MyBaseEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import java.util.List;

public interface MyBaseMapper<T> extends BaseMapper<T> {

    /**
     * mapper层写sql:
     * 这种做法是MyBatis本身就支持的，并不是SpringBoot所特有的！
     * 这种做法最大的优点在于：对应关系非常直观。
     * 主要的缺陷在于：配置长篇的SQL语句时，代码不易于阅读和维护！所以，一般仍然推荐使用XML配置映射的SQL语句！
     */
//    @Options(useGeneratedKeys=true, keyProperty="id")
//    @Insert("insert into table (字段列表) values (值列表)")
//    Integer insert(BaseEntity baseEntity);


    /**
     * 扩展方法  表不能写死,要做到所有表都能调用
     */
    List<T> findAll();

    /**
     * 扩展方法 根据id获取通用属性
     */
    MyBaseEntity findBaseEntityById(long id);
}
